
package com.jf.cloud.product.service;

import com.jf.cloud.common.database.dto.PageDTO;
import com.jf.cloud.common.database.vo.PageVO;
import com.jf.cloud.product.dto.TakeStockDTO;
import com.jf.cloud.product.model.TakeStock;
import com.jf.cloud.product.vo.TakeStockVO;

import javax.servlet.http.HttpServletResponse;

/**
 * 
 *
 * @author zz
 * @date 2022-06-22 16:57:27
 */
public interface TakeStockService {

    /**
     * 分页获取列表
     * @param pageDTO 分页参数
     * @return 列表分页数据
     */
    PageVO<TakeStock> page(PageDTO pageDTO);

    /**
     * 根据id获取
     *
     * @param takeStockId id
     * @return 
     */
    TakeStock getByTakeStockId(Long takeStockId);

    /**
     * 保存
     * @param takeStock 
     */
    void save(TakeStock takeStock);

    /**
     * 更新
     * @param takeStock 
     */
    void update(TakeStock takeStock);

    /**
     * 根据id删除
     * @param takeStockId id
     */
    void deleteById(Long takeStockId);

    /**
     * 分页查询实物盘点数据
     * @param pageDTO
     * @param takeStockDTO
     * @return
     */
    PageVO<TakeStockVO> pageByParam(PageDTO pageDTO, TakeStockDTO takeStockDTO);

    /**
     * 更新实物盘点
     * @param takeStockDTO
     * @return
     */
    Boolean updateTakeStock(TakeStockDTO takeStockDTO);

    /**
     * 完成实物盘点
     * @param takeStockDTO
     * @return
     */
    Boolean finishTakeStock(TakeStockDTO takeStockDTO);

    /**
     * excel导出
     * @param takeStockDTO
     * @param response
     */
    void exportExcel(TakeStockDTO takeStockDTO, HttpServletResponse response);
}
